nominees[, `:=`(
clean_category = tolower(gsub('.{7}$', '', category)),
title = tolower(title),
producer = tolower(producer),
distributor = tolower(distributor)
)]
nom90 <- nominees %>% filter(year >= 1990)
shows <-
nom90 %>%
group_by(title, type) %>%
summarise(no = n()) %>%
spread (type, no)
`summarise()` has grouped output by 'title'. You can override using the `.groups` argument.
shows[is.na(shows)] <- 0
shows$totalType <- shows$Nominee + shows$Winner
shows$totalTypeRatio <- shows$Winner/shows$Nominee
# Top 20 shows by:
# Winners
WStop20 <- shows[order(-shows$Winner), ][1:15, ]
WStop20Sort <- WStop20[order(WStop20$totalType), ]
WStop20Sort$title <- as.factor(WStop20Sort$title)
viz_dbar <- function(df, xaxis1, xaxis2, yaxis, xname1, xname2) {
fig <- plot_ly(
df,
x = xaxis1,
y = yaxis,
type = 'bar',
text=xaxis1,
textposition='auto',
orientation = 'h',
name = xname1,
marker = list(
color = 'rgba(153, 153, 153, 0.6)',
line = list(color = 'rgba(153, 153, 153, 1.0)', width = 3)
)
)
fig <- fig %>% add_trace(
x = xaxis2,
name = xname2,
text=xaxis2,
textposition='auto',
marker = list(
color = 'rgba(255, 153, 0, 0.6)',
line = list(color = 'rgba(255, 153, 0, 1.0)', width = 3)
)
)
m <- list(l=200, r=20, b=10, t=10)
fig <- fig %>% layout(
barmode = 'stack',
xaxis = list(title = "Nominee and Winners"),
yaxis = list(categoryorder = "array",
categoryarray = yaxis,
automargin=T, ticksuffix = " "
),
margin=m
)
fig
}
viz_dbar(
WStop20Sort,
WStop20Sort$Nominee,
WStop20Sort$Winner,
WStop20Sort$title,
"Nominee",
"Winner"
)
NA
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGRhdGEudGFibGUpDQpsaWJyYXJ5KHBsb3RseSkNCmBgYA0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KDQp0dWVzZGF0YSA8LSB0aWR5dHVlc2RheVI6OnR0X2xvYWQoJzIwMjEtMDktMjEnKQ0KdHVlc2RhdGEgPC0gdGlkeXR1ZXNkYXlSOjp0dF9sb2FkKDIwMjEsIHdlZWsgPSAzOSkNCm5vbWluZWVzIDwtIGFzLmRhdGEudGFibGUodHVlc2RhdGEkbm9taW5lZXMpDQpgYGANCg0KYGBge3J9DQpub21pbmVlc1ssIGA6PWAoDQogIGNsZWFuX2NhdGVnb3J5ID0gdG9sb3dlcihnc3ViKCcuezd9JCcsICcnLCBjYXRlZ29yeSkpLA0KICB0aXRsZSA9IHRvbG93ZXIodGl0bGUpLA0KICBwcm9kdWNlciA9IHRvbG93ZXIocHJvZHVjZXIpLA0KICBkaXN0cmlidXRvciA9IHRvbG93ZXIoZGlzdHJpYnV0b3IpDQoNCildDQoNCg0Kbm9tOTAgPC0gbm9taW5lZXMgJT4lIGZpbHRlcih5ZWFyID49IDE5OTApDQpgYGANCg0KDQpgYGB7ciBCZXN0IHNob3c6IERvdWJsZSBiYXJjaGFydH0NCg0KDQpzaG93cyA8LQ0KICBub205MCAlPiUNCiAgZ3JvdXBfYnkodGl0bGUsIHR5cGUpICU+JQ0KICBzdW1tYXJpc2Uobm8gPSBuKCkpICU+JQ0KICBzcHJlYWQgKHR5cGUsIG5vKQ0KDQpzaG93c1tpcy5uYShzaG93cyldIDwtIDANCnNob3dzJHRvdGFsVHlwZSA8LSBzaG93cyROb21pbmVlICsgc2hvd3MkV2lubmVyDQpzaG93cyR0b3RhbFR5cGVSYXRpbyA8LSBzaG93cyRXaW5uZXIvc2hvd3MkTm9taW5lZQ0KDQojIFRvcCAyMCBzaG93cyBieToNCiMgV2lubmVycw0KV1N0b3AyMCA8LSAgc2hvd3Nbb3JkZXIoLXNob3dzJFdpbm5lciksIF1bMToxMCwgXQ0KV1N0b3AyMFNvcnQgPC0gV1N0b3AyMFtvcmRlcihXU3RvcDIwJHRvdGFsVHlwZSksIF0NCldTdG9wMjBTb3J0JHRpdGxlIDwtIGFzLmZhY3RvcihXU3RvcDIwU29ydCR0aXRsZSkNCg0KDQoNCnZpel9kYmFyIDwtIGZ1bmN0aW9uKGRmLCB4YXhpczEsIHhheGlzMiwgeWF4aXMsIHhuYW1lMSwgeG5hbWUyKSB7DQogIA0KICBmaWcgPC0gcGxvdF9seSgNCiAgICBkZiwNCiAgICB4ID0geGF4aXMxLA0KICAgIHkgPSB5YXhpcywNCiAgICB0eXBlID0gJ2JhcicsDQogICAgdGV4dD14YXhpczEsDQogICAgdGV4dHBvc2l0aW9uPSdhdXRvJywNCiAgICBvcmllbnRhdGlvbiA9ICdoJywNCiAgICBuYW1lID0geG5hbWUxLA0KICAgIG1hcmtlciA9IGxpc3QoDQogICAgICBjb2xvciA9ICdyZ2JhKDE1MywgMTUzLCAxNTMsIDAuNiknLA0KICAgICAgbGluZSA9IGxpc3QoY29sb3IgPSAncmdiYSgxNTMsIDE1MywgMTUzLCAxLjApJywgd2lkdGggPSAzKQ0KICAgICkNCiAgKQ0KICANCiAgZmlnIDwtIGZpZyAlPiUgYWRkX3RyYWNlKA0KICAgIHggPSB4YXhpczIsDQogICAgbmFtZSA9IHhuYW1lMiwNCiAgICB0ZXh0PXhheGlzMiwNCiAgICB0ZXh0cG9zaXRpb249J2F1dG8nLA0KICAgIG1hcmtlciA9IGxpc3QoDQogICAgICBjb2xvciA9ICdyZ2JhKDI1NSwgMTUzLCAwLCAwLjYpJywNCiAgICAgIGxpbmUgPSBsaXN0KGNvbG9yID0gJ3JnYmEoMjU1LCAxNTMsIDAsIDEuMCknLCB3aWR0aCA9IDMpDQogICAgKQ0KICApDQogIG0gPC0gbGlzdChsPTIwMCwgcj0yMCwgYj0xMCwgdD0xMCkNCiAgZmlnIDwtIGZpZyAlPiUgbGF5b3V0KA0KICAgIGJhcm1vZGUgPSAnc3RhY2snLA0KICAgIHhheGlzID0gbGlzdCh0aXRsZSA9ICJOb21pbmVlIGFuZCBXaW5uZXJzIiksDQogICAgeWF4aXMgPSBsaXN0KGNhdGVnb3J5b3JkZXIgPSAiYXJyYXkiLA0KICAgICAgICAgICAgICAgICBjYXRlZ29yeWFycmF5ID0geWF4aXMsDQogICAgICAgICAgICAgICAgIGF1dG9tYXJnaW49VCwNCiAgICAgICAgICAgICAgICAgdGlja3N1ZmZpeCA9ICIgIg0KICAgICAgICAgICAgICAgICApLA0KICAgIG1hcmdpbj1tDQogICkNCiAgDQogIA0KICBmaWcNCn0NCg0Kdml6X2RiYXIoDQogIFdTdG9wMjBTb3J0LA0KICBXU3RvcDIwU29ydCROb21pbmVlLA0KICBXU3RvcDIwU29ydCRXaW5uZXIsDQogIFdTdG9wMjBTb3J0JHRpdGxlLA0KICAiTm9taW5lZSIsDQogICJXaW5uZXIiDQopDQoNCmBgYA0KDQpgYGB7ciBCZXN0IHNob3c6IH0NCg0KDQoNCmBgYA==